package com.bosssoft.entity.vo;

import com.bosssoft.validator.Cid;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @author 项昊天
 * @create 2021/8/16 15:15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FibUserVO implements Serializable {
  /**
   * 用户id
   */
  private Long userId;

  /**
   * 登录账号
   */
  @NotNull(message = "登录账号不能为空")
  private String userUsername;

  /**
   * 登录密码
   */
  @NotNull(message = "登录密码不能为空")
  private String userPassword;

  /**
   * 用户类型
   */
  @NotNull(message = "用户类型不能为空")
  private String userType;

  /**
   * 所属财政
   */
  @NotNull(message = "所属财政不能为空")
  private Long userFiscal;

  /**
   * 所属机构
   */
  @NotNull(message = "所属机构不能为空")
  private Long userDepartment;

  /**
   * 用户姓名
   */
  @NotNull(message = "用户姓名不能为空")
  private String userName;

  /**
   * 证件类型
   */
  @NotNull(message = "证件类型不能为空")
  private Byte userIdentityCardType;

  /**
   * 证件号码
   */
  @Cid
  @NotNull(message = "证件号码不能为空")
  private String userIdentityCardNum;

  /**
   * 电子邮箱
   */
  @Email(message = "邮箱格式不正确")
  @NotNull(message = "电子邮箱不能为空")
  private String userEmail;

  /**
   * 联系电话
   */
  @NotNull(message = "联系电话不能为空")
  private String userPhone;

  /**
   * 办公电话
   */
  @NotNull(message = "办公电话不能为空")
  private String userOfficePhone;

  /**
   * 证明材料
   */
  @NotNull(message = "证明材料不能为空")
  private String userMaterial;

  /**
   * 备注
   */
  private String userNote;

  /**
   * 创建时间
   */
  private Date createTime;

  /**
   * 更新时间
   */
  private Date updateTime;

  /**
   * 创建人
   */
  private String createBy;

  /**
   * 更新人
   */
  private String updateBy;

  /**
   * 版本
   */
  private Integer version;

  /**
   * 激活状态
   */
  private Byte deleted;
}
